From 7e359b2621f5423090a07876347b7eefe66802ae Mon Sep 17 00:00:00 2001 From: "adsharma@los-vmm.sc.intel.com" Date: Mon, 15 Aug 2005 12:50:25 -0800 Subject: [PATCH] Don't leave vncviewer processes running if xm create fails Signed-off-by: Edwin Zhai Signed-off-by: Arun Sharma --- tools/python/xen/xm/create.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/tools/python/xen/xm/create.py b/tools/python/xen/xm/create.py index d20e47352e..72aa2a3f63 100644 --- a/tools/python/xen/xm/create.py +++ b/tools/python/xen/xm/create.py @@ -592,9 +592,14 @@ def choose_vnc_display(): return d return None +vncpid = None + def spawn_vnc(display): - os.system("vncviewer -log *:stdout:0 -listen %d &" % - (VNC_BASE_PORT + display)) + vncargs = (["vncviewer" + "-log", "*:stdout:0", + "-listen", "%d" % (VNC_BASE_PORT + display) ]) + global vncpid + vncpid = os.spawnvp(os.P_NOWAIT, "vncviewer", vncargs) + return VNC_BASE_PORT + display def preprocess_vnc(opts, vals): @@ -639,6 +644,9 @@ def make_domain(opts, config): else: dominfo = server.xend_domain_create(config) except XendError, ex: + import signal + if vncpid: + os.kill(vncpid, signal.SIGKILL) opts.err(str(ex)) dom = sxp.child_value(dominfo, 'name') -- 2.30.2